/**
 * 给定一个字符串 s ，请你找出其中不含有重复字符的最长子串的长度。
 * 输入：s = "abcabcbb"
 * 输出：3
 * 解释：因为无重复字符的最长子串是 "abc"，所以其长度为 3。
 * @param {*} s 
 */
var lengthOfLongestSubstring = function (s) {
    let map = new Map();

    let left = 0, res = 0;
    let i;

    for (i = 0; i < s.length; i++) {
        if (map.has(s[i])) {
            res = Math.max(res, i - left);
            left = Math.max(left, map.get(s[i]) + 1);
        }
        
        map.set(s[i], i);
    }
    return Math.max(res, i - left);
};

const s = "pwwkew";
console.log(lengthOfLongestSubstring(s));